/**
*  
* @Function 批量核查详情DAO 
* @ProjectName credit-data-platform 
* @PackageName com.py.credit.dao    
* @FileName BatchReportDetailDao.java    
* @Date 2018年10月19日下午2:50:13
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/
package com.py.credit.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.credit.entity.BatchReportDetailEntity;
import com.py.framework.core.common.Page;

/**
 * 
 * @Function 批量核查详情DAO
 * @ClassName BatchReportDetailDao
 * @Date 2018年10月19日 下午2:50:13
 * @Author Min DongXv
 * 
 */
public interface BatchReportDetailDao {

	/**
	 *
	 * @Function 分页查询批量核查详情
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getBatchReportDetailByConditionForPage
	 * @param columns
	 * @param additionalColumns
	 * @param condition
	 * @param page
	 * @return
	 * @Date 2018年10月19日 下午4:30:22
	 * @Author Min DongXv
	 *
	 */
	public List<Map<String, Object>> getBatchReportDetailByConditionForPage(
			@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page,
			@Param(value = "batchId") String batchId);

	/**
	 *
	 * @Function 批量新增核查信息
	 * @FileName BatchReportDetailDao.java
	 * @MethodName batchAddDetails
	 * @param list
	 * @Date 2018年10月19日 下午4:30:22
	 * @Author Min DongXv
	 *
	 */
	public void batchAddDetails(List<BatchReportDetailEntity> list);

	/**
	 *
	 * @Function 更新导入信息的基本信息
	 * @FileName BatchReportDetailDao.java
	 * @MethodName updateDetailInfo
	 * @param batchId
	 * @Date 2018年10月19日 下午4:30:22
	 * @Author Min DongXv
	 *
	 */
	public void updateDetailInfo(@Param(value = "batchId") String batchId);

	/**
	 *
	 * @Function 通过ID更新基本信息
	 * @FileName BatchReportDetailDao.java
	 * @MethodName updateDetailInfoById
	 * @param id
	 * @Date 2018年10月19日 下午4:30:22
	 * @Author Min DongXv
	 *
	 */
	public void updateDetailInfoById(@Param(value = "id") Integer id);

	/**
	 *
	 * @Function 获取待生成的核查信息
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getWaitCreateDetail
	 * @param batchId
	 * @Date 2018年10月19日 下午4:30:22
	 * @Author Min DongXv
	 *
	 */
	public List<BatchReportDetailEntity> getWaitCreateDetail(@Param(value = "batchId") String batchId);

	/**
	 *
	 * @Function 获取待生成的核查信息数量
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getWaitCreateDetailCount
	 * @param batchId
	 * @return
	 * @Date 2018年10月22日 下午6:03:18
	 * @Author Min DongXv
	 *
	 */
	public int getWaitCreateDetailCount(@Param(value = "batchId") String batchId);

	/**
	 * 
	 * @Function 更新报告状态
	 * @FileName BatchReportDetailDao.java
	 * @MethodName updateDetailStatus
	 * @param map
	 * @Date 2018年10月19日 下午4:38:55
	 * @Author Min DongXv
	 *
	 */
	public void updateDetailStatus(Map<String, Object> map);

	/**
	 *
	 * @Function 获取报告详情
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getBatchDetailById
	 * @param id
	 * @Date 2018年10月22日 上午10:14:38
	 * @Author Min DongXv
	 *
	 */
	public BatchReportDetailEntity getBatchDetailById(@Param(value = "id") Integer id,
			@Param(value = "reportStatus") Integer reportStatus);

	/**
	 *
	 * @Function 批量更新待生成记录为生成中
	 * @FileName BatchReportDetailDao.java
	 * @MethodName batchUpdateStatus
	 * @Date 2018年10月23日 上午10:41:56
	 * @Author Min DongXv
	 *
	 */
	public void batchUpdateStatus();

	/**
	 *
	 * @Function 获取生成中报告数量
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getCreatingNum
	 * @return
	 * @Date 2018年10月23日 上午10:42:42
	 * @Author Min DongXv
	 *
	 */
	public int getCreatingNum();

	/**
	 * 
	 * @Function 获取已生成报告的文件名
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getReportName
	 * @param batchId
	 *            批次ID
	 * @return
	 * @Date 2018年10月23日 下午3:51:18
	 * @Author Min DongXv
	 *
	 */
	public List<String> getReportName(String batchId);

	/**
	 * 
	 * @Function 通过ID获取已生成报告的文件名
	 * @FileName BatchReportDetailDao.java
	 * @MethodName getReportNameById
	 * @param list
	 *            详情ID
	 * @return
	 * @Date 2018年10月23日 下午3:51:18
	 * @Author Min DongXv
	 *
	 */
	public List<String> getReportNameById(@Param(value = "list") List<Integer> list);
}
